package com.wasion.gydpe.service;

import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

import com.wasion.gydpe.exception.DataAccessException;
import com.wasion.gydpe.model.Bureau;
import com.wasion.gydpe.model.Line;
import com.wasion.gydpe.model.Node;
import com.wasion.gydpe.model.Station;

/**
 * 
 * @ClassName: ArchivesService
 * @Description: 档案管理服务层接口Service
 * @author 高意
 * @date Sep 25, 2012 8:59:14 AM
 * 
 */
public interface ArchivesService {

	/**
	 * 
	 * @Title: queryBureausByPaging
	 * @Description: 分页查询供电局信息
	 * @param：查询条件及分页参数
	 * @return
	 * @throws
	 */
	public JSONObject queryBureausByPaging(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: loadBureauByPk
	 * @Description: 根据主键装载供电局信息
	 * @return
	 * @throws
	 */
	public JSONObject loadBureauByPk(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: removeBureau
	 * @Description: 删除供电局
	 * @param：供电局唯一标识等
	 * @return
	 * @throws
	 */
	public boolean removeBureau(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: addOrModifyBureau
	 * @Description: 添加或者修改供电局
	 * @param：供电局信息，如果唯一标识为null即为新增；否则为修改
	 * @return
	 * @throws
	 */
	public String addOrModifyBureau(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: queryAllBureaus
	 * @Description: 查询所有的供电局信息
	 * @param
	 * @return
	 * @throws
	 */
	public List<Bureau> queryAllBureaus() throws DataAccessException;

	/**
	 * 
	 * @Title: queryStationsByPaging
	 * @Description: 分页查询供电所信息
	 * @param：查询条件及分页参数
	 * @return
	 * @throws
	 */
	public JSONObject queryStationsByPaging(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: loadStationByPk
	 * @Description: 根据主键装载供电所信息
	 * @return
	 * @throws
	 */
	public JSONObject loadStationByPk(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: removeStation
	 * @Description: 删除供电所
	 * @param：供电局唯一标识等
	 * @return
	 * @throws
	 */
	public boolean removeStation(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: addOrModifyStation
	 * @Description: 添加或者修改供电所
	 * @param：供电局信息，如果唯一标识为null即为新增；否则为修改
	 * @return
	 * @throws
	 */
	public String addOrModifyStation(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: queryLinesByPaging
	 * @Description: 分页查询线路信息
	 * @param：查询条件及分页参数
	 * @return
	 * @throws
	 */
	public JSONObject queryLinesByPaging(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: loadLineByPk
	 * @Description: 根据主键装载线路信息
	 * @return
	 * @throws
	 */
	public JSONObject loadLineByPk(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: removeLine
	 * @Description: 删除线路
	 * @param：线路唯一标识等
	 * @return
	 * @throws
	 */
	public boolean removeLine(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: addOrModifyLine
	 * @Description: 添加或者修改线路
	 * @param：线路信息，如果唯一标识为null即为新增；否则为修改
	 * @return
	 * @throws
	 */
	public String addOrModifyLine(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: queryStationsBelonged
	 * @Description: 查询局所属供电所
	 * @param
	 * @return
	 * @throws
	 */
	public List<Station> queryStationsBelonged(Map<String, Object> param)
			throws DataAccessException;

	/**
	 * 
	 * @Title: queryTerminalsByPaging
	 * @Description: 分页查询终端信息
	 * @param：查询条件及分页参数
	 * @return
	 * @throws
	 */
	public JSONObject queryTerminalsByPaging(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: loadTerminalByPk
	 * @Description: 根据主键装载终端信息
	 * @return
	 * @throws
	 */
	public JSONObject loadTerminalByPk(Map<String, Object> paramsMap)
			throws DataAccessException;

	/**
	 * 
	 * @Title: queryLinesBelonged
	 * @Description: 查询所所属线路
	 * @param
	 * @return
	 * @throws
	 */
	public List<Line> queryLinesBelonged(Map<String, Object> param)
			throws DataAccessException;

	/**
	 * 
	 * @Title: queryAsyncTree
	 * @Description: 查询组织结构树
	 * @param
	 * @return
	 * @throws
	 */
	public List<Node> queryAsyncTree(Map<String, Object> param)
			throws DataAccessException;
}
